package com.cti.commons.mqtt.handle;

import org.springframework.beans.factory.annotation.Autowired;

import com.cti.commons.mqtt.config.MqttPahoConfiguration;
import com.cti.commons.mqtt.domain.MessageDTO;

/**
 * @author et.wang
 * @description: mqtt消息提供者
 * @date 2022/11/15 17:41
 */
public class MqttMessageProvider extends AbstractMessageSender {

    @Autowired
    private MqttPahoConfiguration configuration;

    /**
     * 发送消息
     *
     * @param topic   主题
     * @param message 消息
     */
    public void send(String topic, MessageDTO message) {
        this.send(topic, configuration.getQos(), message);
    }

    /**
     * 发送延时消息
     * 需要emqx支持delay消息
     *
     * @param topic   主题
     * @param message 消息
     * @param second  延时时间(秒)
     */
    public void send(String topic, MessageDTO message, Integer second) {
        if (second == null || second.intValue() < 0) {
            throw new RuntimeException("second时间有误");
        }
        this.send("$delayed/" + second + "/" + topic, configuration.getQos(), message);
    }

}
